home *** CD-ROM | disk | FTP | other *** search
/ Erotic Games: Memory / Erotic Games: Memory.iso / mac / air_installers / AdobeAIR.exe / setup.swf / scripts / mx / core / EmbeddedFontRegistry.as < prev    next >
Text File  |  2009-02-12  |  6KB  |  201 lines

  1. package mx.core
  2. {
  3.    import flash.text.FontStyle;
  4.    import flash.utils.Dictionary;
  5.    
  6.    use namespace mx_internal;
  7.    
  8.    public class EmbeddedFontRegistry implements IEmbeddedFontRegistry
  9.    {
  10.       
  11.       private static var fonts:Object = {};
  12.       
  13.       private static var instance:IEmbeddedFontRegistry;
  14.       
  15.       mx_internal static const VERSION:String = "3.0.0.0";
  16.        
  17.       
  18.       public function EmbeddedFontRegistry()
  19.       {
  20.          super();
  21.       }
  22.       
  23.       public static function registerFonts(param1:Object, param2:IFlexModuleFactory) : void
  24.       {
  25.          var _loc4_:* = null;
  26.          var _loc5_:Object = null;
  27.          var _loc6_:* = null;
  28.          var _loc7_:Boolean = false;
  29.          var _loc8_:Boolean = false;
  30.          var _loc3_:IEmbeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry"));
  31.          for(_loc4_ in param1)
  32.          {
  33.             _loc5_ = param1[_loc4_];
  34.             for(_loc6_ in _loc5_)
  35.             {
  36.                if(_loc5_[_loc6_] != false)
  37.                {
  38.                   if(_loc6_ == "regular")
  39.                   {
  40.                      _loc7_ = false;
  41.                      _loc8_ = false;
  42.                   }
  43.                   else if(_loc6_ == "boldItalic")
  44.                   {
  45.                      _loc7_ = true;
  46.                      _loc8_ = true;
  47.                   }
  48.                   else if(_loc6_ == "bold")
  49.                   {
  50.                      _loc7_ = true;
  51.                      _loc8_ = false;
  52.                   }
  53.                   else if(_loc6_ == "italic")
  54.                   {
  55.                      _loc7_ = false;
  56.                      _loc8_ = true;
  57.                   }
  58.                   _loc3_.registerFont(new EmbeddedFont(String(_loc4_),_loc7_,_loc8_),param2);
  59.                }
  60.             }
  61.          }
  62.       }
  63.       
  64.       public static function getInstance() : IEmbeddedFontRegistry
  65.       {
  66.          if(!instance)
  67.          {
  68.             instance = new EmbeddedFontRegistry();
  69.          }
  70.          return instance;
  71.       }
  72.       
  73.       public static function getFontStyle(param1:Boolean, param2:Boolean) : String
  74.       {
  75.          var _loc3_:String = FontStyle.REGULAR;
  76.          if(param1 && param2)
  77.          {
  78.             _loc3_ = FontStyle.BOLD_ITALIC;
  79.          }
  80.          else if(param1)
  81.          {
  82.             _loc3_ = FontStyle.BOLD;
  83.          }
  84.          else if(param2)
  85.          {
  86.             _loc3_ = FontStyle.ITALIC;
  87.          }
  88.          return _loc3_;
  89.       }
  90.       
  91.       private static function createFontKey(param1:EmbeddedFont) : String
  92.       {
  93.          return param1.fontName + param1.fontStyle;
  94.       }
  95.       
  96.       private static function createEmbeddedFont(param1:String) : EmbeddedFont
  97.       {
  98.          var _loc2_:String = null;
  99.          var _loc3_:Boolean = false;
  100.          var _loc4_:Boolean = false;
  101.          var _loc5_:int;
  102.          if((_loc5_ = endsWith(param1,FontStyle.REGULAR)) > 0)
  103.          {
  104.             _loc2_ = param1.substring(0,_loc5_);
  105.             return new EmbeddedFont(_loc2_,false,false);
  106.          }
  107.          if((_loc5_ = endsWith(param1,FontStyle.BOLD)) > 0)
  108.          {
  109.             _loc2_ = param1.substring(0,_loc5_);
  110.             return new EmbeddedFont(_loc2_,true,false);
  111.          }
  112.          if((_loc5_ = endsWith(param1,FontStyle.BOLD_ITALIC)) > 0)
  113.          {
  114.             _loc2_ = param1.substring(0,_loc5_);
  115.             return new EmbeddedFont(_loc2_,true,true);
  116.          }
  117.          if((_loc5_ = endsWith(param1,FontStyle.ITALIC)) > 0)
  118.          {
  119.             _loc2_ = param1.substring(0,_loc5_);
  120.             return new EmbeddedFont(_loc2_,false,true);
  121.          }
  122.          return new EmbeddedFont("",false,false);
  123.       }
  124.       
  125.       private static function endsWith(param1:String, param2:String) : int
  126.       {
  127.          var _loc3_:int = param1.lastIndexOf(param2);
  128.          if(_loc3_ > 0 && _loc3_ + param2.length == param1.length)
  129.          {
  130.             return _loc3_;
  131.          }
  132.          return -1;
  133.       }
  134.       
  135.       public function getAssociatedModuleFactory(param1:EmbeddedFont, param2:IFlexModuleFactory) : IFlexModuleFactory
  136.       {
  137.          var _loc4_:int = 0;
  138.          var _loc5_:* = null;
  139.          var _loc3_:Dictionary = fonts[createFontKey(param1)];
  140.          if(_loc3_)
  141.          {
  142.             if(_loc4_ = _loc3_[param2])
  143.             {
  144.                return param2;
  145.             }
  146.             var _loc6_:int = 0;
  147.             var _loc7_:* = _loc3_;
  148.             for(_loc5_ in _loc7_)
  149.             {
  150.                return _loc5_ as IFlexModuleFactory;
  151.             }
  152.          }
  153.          return null;
  154.       }
  155.       
  156.       public function deregisterFont(param1:EmbeddedFont, param2:IFlexModuleFactory) : void
  157.       {
  158.          var _loc5_:int = 0;
  159.          var _loc6_:* = null;
  160.          var _loc3_:String = createFontKey(param1);
  161.          var _loc4_:Dictionary;
  162.          if((_loc4_ = fonts[_loc3_]) != null)
  163.          {
  164.             delete _loc4_[param2];
  165.             _loc5_ = 0;
  166.             for(_loc6_ in _loc4_)
  167.             {
  168.                _loc5_++;
  169.             }
  170.             if(_loc5_ == 0)
  171.             {
  172.                delete fonts[_loc3_];
  173.             }
  174.          }
  175.       }
  176.       
  177.       public function getFonts() : Array
  178.       {
  179.          var _loc2_:* = null;
  180.          var _loc1_:Array = [];
  181.          for(_loc2_ in fonts)
  182.          {
  183.             _loc1_.push(createEmbeddedFont(_loc2_));
  184.          }
  185.          return _loc1_;
  186.       }
  187.       
  188.       public function registerFont(param1:EmbeddedFont, param2:IFlexModuleFactory) : void
  189.       {
  190.          var _loc3_:String = createFontKey(param1);
  191.          var _loc4_:Dictionary;
  192.          if(!(_loc4_ = fonts[_loc3_]))
  193.          {
  194.             _loc4_ = new Dictionary(true);
  195.             fonts[_loc3_] = _loc4_;
  196.          }
  197.          _loc4_[param2] = 1;
  198.       }
  199.    }
  200. }
  201.